Desarrollando Software en Comunidad

Hola! Les damos la bienvenida

Sobre este taller

  • Por qué usar git
  • Cómo usar git (y GitHub)
  • Cómo trabajar con git en el contexto de escribir código R
  • Cómo colaborar con otras personas.

Ilustración de Alison Horst que muestra el directorio de trabajo (como un edificio), cómo se añaden los archivos al área de preparación (staging) y se envían al repositorio local (otro edificio). Los envíos se transfieren y se extraen del repositorio remoto (un edificio diferente), todos conectados con flechas.

Tienen algo asi en su computadora?

/home/pao/Documents/thesis
├── resumen.R
├── tesis.Rmd
├── tesis_revisada.Rmd
├── tesis_revisada2.Rmd
├── tesis_final.Rmd
├── tesis_finalfinal.Rmd
├── esta_es_la_final.Rmd
├── ahora_si_esta_es_la_final_en_serio_definitivo.Rmd
└── FINAL.Rmd

Ciclo del control de versiones

La figura muestra los estados de un archivo: sin rastrear o rastreado. Cuando es rastreado por el repositorio, el archivo puede ser preparado, confirmado o modificado. Con la acción «add, añadir», el archivo se «prepara, staged», y con la acción «commit, confirmar», el archivo se «guarda» en el repositorio. Este ciclo se repite cada vez que se modifica el archivo.

Nuestro flujo de trabajo

Modelo conceptual de un flujo de trabajo utilizando proyectos de RStudio y git. Los archivos se añaden al área de preparación y a continuación se envían al repositorio local. Puede enviar los cambios al repositorio remoto y descargar los nuevos cambios a su ordenador.

add --> commmit --> push

Chequear que todo esta listo

> usethis::git_sitrep()

── Git global (user) 
• Name: "Pao Corrales"
• Email: "micorreo@gmail.com"
Global (user-level) gitignore file: ~/.gitignore
• Vaccinated: TRUE
• Default Git protocol: "https"
• Default initial branch name: "main"

── GitHub user 
• Default GitHub host: "https://github.com"
• Personal access token for "https://github.com": <discovered>
• GitHub user: "paocorrales"
• Token scopes: "gist", "repo", "user", and "workflow"
Email(s): "micorreo@gmail.com (primary)", "paocorrales@users.noreply.github.com", and
  "otro correo@gmail.com"
ℹ No active usethis project.

Usando git y GitHub con RStudio

Supongamos que estas arrancando un nuevo proyecto:

  1. Crea un nuevo proyecto de RStudio

    • File \> New Project \> New Directory \> New Project. No selecciones la opcion “Create a new git repository”.
  2. Usa usethis::use_git() para asegurarte que el proyecto tiene un repositorio git.

  3. Usa la funcion usethis::use_github() para asociar el repositorio local con un repositorio remoto en GitHub.

  4. Chequea en tu GitHub que el nuevo repo con el nombre del proyecto exista.

Trabajando en proyectos que tienen control de versiones

✏️ Trabajando en el repo local

  1. Creá un nuevo archivo (script, rmarkdown o quarto) y guardalo.
  2. Agregalo al área de preparación con add y luego hace un commit. ¡Vas a tener que pensar un mensaje descriptivo!
  3. Hace un cambio en el archivo, puede ser cualquier cosa. Guardalo.
  4. Repetí el paso 2.
  5. Ahora, hacé push para enviar los commits al repositorio remoto utilizando el botón con la flecha verde apuntando hacia arriba.
  6. En el repositorio remoto chequea que los cambios estén presentes en el archivo.

✏️ Haciendo cambios remotos

  1. En GitHub navegá hasta encontrar el archivo que creaste recién. Entrá y hace click en el lapiz (“Edit this file”) para editarlo.
  2. Agregá un par de lineas de código o texto.
  3. Arriba a la derecha encontrarás un botón verde que dice “Commit changes…”.
  4. Edita el mensaje del commit para que sea informativo y luego hace clic en “Commit changes”
  5. Revisá si los cambios se guardaron correctamente.

✏️ Sincronizando el repo remoto con el repo local

  1. Volvé a RStudio.
  2. Revisá panel de Git.
  3. Hacé click en la flecha azul que dice “Pull”.
  4. Revisá el archivo que modificaste en GitHub.